package dao

// UserBase 数据库模型
type UserBase struct {
	ID           int64  `gorm:"primaryKey;autoIncrement"`
	Mobile       string `gorm:"uniqueIndex;size:20;not null"`
	Source       int64  `gorm:"index;not null;default:0"`     // 用户来源，比如0=未知,1=微信小程序,2=H5等
	AccessToken  string `gorm:"size:255;not null;default:''"` // 用于存储登录态token，比如JWT
	TokenCreated int64  `gorm:"not null;default:0"`           // token生成时间，单位：秒
	CreatedAt    int64  `gorm:"autoCreateTime"`
	UpdatedAt    int64  `gorm:"autoUpdateTime"`
}

// 表名称
func (UserBase) TableName() string {
	return "user_base"
}

// FindByMobile 查询手机号是否存在，并返回用户信息
func (u *UserBase) FindByMobile(mobile string) error {
	result := DB.Where("mobile = ?", mobile).First(u)
	if result.Error != nil {
		return result.Error
	}
	return nil
}

// CreateNew 创建新用户
func (u *UserBase) CreateNew() error {
	result := DB.Create(u)
	return result.Error
}
